//解题思路：
//排序让数组有序，然后用两个指针slow和fast，判断他们是否相同
//如果相同就直接erase，不同的话就让slow和fast都++，判断下一组是否相同



class Solution
{
public:
    vector<int> singleNumber(vector<int>& nums)
    {
        sort(nums.begin(), nums.end());


        vector<int>::iterator slow = nums.begin();
        auto fast = nums.begin() + 1;

        while (fast != nums.end() && fast != nums.end() + 1)
        {
            if (*slow == *fast)
            {

                fast = nums.erase(fast); //防止平台自己判断迭代器失效的问题
                slow = nums.erase(slow);
            }
            else
            {
                slow++;
                fast++;
            }
        }

        return nums;
    }
};